﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EntityBinder.Interface
{
	/// <summary>
	/// Interface which defines function needed by EntityWriter.
	/// </summary>
	public interface IEntityWriter
	{
		bool Indent { get; set; }

		/// <summary>
		/// Write the data object to the stream using previously set rules.
		/// </summary>
		/// <param name="_outputStream">The output stream.</param>
		/// <param name="_data">The data object to write.</param>
		void Write(System.IO.Stream _outputStream, object _data);

		/// <summary>
		/// Write the data object to the stream using rules in parameter.
		/// </summary>
		/// <param name="_outputStream">The output stream.</param>
		/// <param name="_data">The data object to write.</param>
		/// <param name="_rules">The rules to write the object.</param>
		void Write(System.IO.Stream _outputStream, object _data, IEntityElement _rules);
	}
}
